<?php

namespace App\Http\Controllers\admin;

use Illuminate\Http\Request;

use App\Http\Controllers\Controller;

use DB;

class typeController extends Controller
{
    public function index(Request $request)
    {

        // 保存搜索的条件
        $where = [];

        // 选择数据库表
    	$db = DB::table('storeSort');

        // 判断有没有查询商品名
        if ($request->has('sortName')) {

            // 模糊查询
            $db->where('sortName', 'like', "%{$request->input('sortName')}%");

            // 查询内容
            $where['sortName'] = $request->input('sortName');

        }

        // 分页
        $list = $db->paginate(5);

    	return view('admin.type.sortlist', ['list' => $list,'where'=>$where]);

    }

    public function create()
    {

    	return view('admin.type.sortadd');

    }

    public function store(Request $request)
    {   

        // 自定义错误信息
    	$message = [

    		'required' => ':attribute 不能为空',

            'unique' => ':attribute 已经存在',

    	];

        // 设置验证规则
    	$this->validate($request, [

            'SortName' => 'required|unique:storeSort',

	    ], $message);

        // 删除token字段名
    	$data = $request->except('_token');

    	// 插入数据
    	$id = DB::table('storeSort')->insertGetId($data);

        // 判断是否插入成功
    	if ($id > 0) {

    		return redirect('/type')->with('msg', '添加成功');

    	}

    }

    public function edit($id)
    {

        // 获得数据表storeSort里指定的数据
    	$ob = DB::table('storeSort')->where('SortId', $id)->first();

    	return view('admin.type.sortedit', ['type' => $ob]);

    }

    public function update($id, Request $request)
    {

        // 自定义错误信息
        $message = [

            'required' => ':attribute 不能为空',

            'unique' => ':attribute 已经存在',

        ];

        // 设置验证规则
        $this->validate($request, [

            'SortName' => 'required|unique:storeSort',

        ], $message);

        // 仅获得SortName数据
    	$data = $request->only('SortName');

        // 修改数据表storeSort中的数据
    	$row = DB::table('storeSort')->where('SortId', $id)->update($data);

        // 判断是否修改成功
    	if ($row > 0) {

    		return redirect('type')->with('msg', '修改成功');

    	}

    }
    
    public function destroy($id)
    {

        // 获得数据表storeSort中指定的数据
    	$ob = DB::table('storeSort')->where('SortPid', $id)->get();

        // 判断有没有子类
    	if (count($ob) > 0) {

    		return redirect('type')->with('msg', '此类还有子类');

    	}

        // 在数据表storeSort中删除指定数据
    	$row = DB::table('storeSort')->where('SortId', $id)->delete();

        // 判断是否删除成功
    	if ($row > 0) {

    		return redirect('type')->with('msg', '删除成功');

    	}

    }

    public function createSon($id)
    {

        // 获得数据表storeSort里的指定数据
    	$list = DB::table('storeSort')->where('SortId', $id)->first();

    	return view('admin.type.sortaddSon', ['list' => $list]);

    }

    public function storeSon(Request $request)
    {

        // 自定义错误信息
        $message = [

            'required' => ':attribute 不能为空',

            'unique' => ':attribute 已经存在',

        ];

        // 设定验证规则
        $this->validate($request, [

            'SortName' => 'required|unique:storeSort',

        ], $message);

        // 删除token字段名
    	$data = $request->except('_token');

        // 获得数据表storeSort里指定的数据
    	$path = DB::table('storeSort')->where('SortId', $request->input('SortPid'))->first();

        // 设置数据类型
    	$data['SortPath'] = $path->SortPath.'-'.$data['SortPid'];

        // 插入数据表
    	$id = DB::table('storeSort')->insertGetId($data);

        // 判断插入是否成功
    	if ($id > 0) {

    		return redirect('type')->with('msg', '添加子类成功');

    	}

    }
    
}
